package Solution201_220;

import java.util.HashMap;
import java.util.Map;

/**
 * 给定一个整数数组，判断数组中是否有两个不同的索引 i 和 j，使得 nums [i] 和 nums [j] 的差的绝对值最大为 t，并且 i 和 j 之间的差的绝对值最大为 ķ。
 * <p>
 * 来源：力扣（LeetCode）
 * 链接：https://leetcode-cn.com/problems/contains-duplicate-iii
 * 著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。
 */
public class Solution220 {
    public static boolean containsNearbyAlmostDuplicate(int[] nums, int k, int t) {
        if (nums == null || nums.length == 0) {
            return false;
        }
        int tempIndex = 0;
        int length = nums.length;
        while (tempIndex < length - 1) {
            long base = nums[tempIndex];
            for (int i = tempIndex + 1; i <= tempIndex + k; i++) {
                if (i < length && Math.abs(base - nums[i]) <= t) {
                    return true;
                }
            }
            tempIndex++;
        }
        return false;
    }

    public static void main(String[] args){
        /**
         * [-1,2147483647]
         * 1
         * 2147483647
         */
        int[] nums=new int[]{-1,2147483647};
        int k=1;
        int t=2147483647;
        System.out.println(containsNearbyAlmostDuplicate(nums,k,t));
    }
}
